#include "mainwindow.h"
#include "ui_mainwindow.h"

#include <QDockWidget>
#include <QVBoxLayout>
#include <QLabel>
#include <QPushButton>
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    // 创建小窗口
    QDockWidget *dock = new QDockWidget(this);
    this->addDockWidget(Qt::LeftDockWidgetArea,dock);

    // 给窗口设置标题
    dock->setWindowTitle("这是一个浮动的窗口");

    // 给浮动的窗口添加一些控件
    // 不能直接在浮动窗口上进行添加，要先创建一个独立的Widget出来，把控件添加到widget上
    // 然后把Widget添加到窗口中
    QWidget *widget = new QWidget(this);
    dock->setWidget(widget);

    // 创建一个布局管理器，来控制控件分布
    QVBoxLayout *out = new QVBoxLayout(widget);
    widget->setLayout(out);

    // 创建控件
    QLabel *label = new QLabel(widget);
    label->setText("这是一个QLabel");
    QPushButton *button = new QPushButton(widget);
    button->setText("这是一个按钮");

    // 控件添加到布局管理器
    out->addWidget(label);
    out->addWidget(button);

    // 设置窗口运行停靠的位置
    dock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);

}

MainWindow::~MainWindow()
{
    delete ui;
}
